A single term often has different meanings in different contexts: the term “mouse” may refer to an animal in one context or to a computer input device in another. Different terms can mean the same thing, like the terms “TV” and “television.” And terms may be related to one another in special ways; for example, a “poodle” is always a “dog” but a “dog” is not always a “poodle”.
Humans learn to cope with the ambiguity of language by understanding the context in which terms are used. Computers can be programmed to do the same thing by consulting data structures called “ontologies” that represent terms and their interrelationships.
Data processing operations commonly need to match one term against another. Because a single term can have different meanings in different contexts, and different terms can mean the same thing, simply testing two values for equality often isn't sufficient. Consider, for example, a computerized restaurant guide application that recommends restaurants to a user based on her preferences. Such an application might employ a database table called “served_food” that identifies each restaurant by its ID number “R_id” in one column and by the kind of food it serves in a second column called “Cuisine.” In the absence of semantic matching, if the user wished to identify restaurants serving Latin American cuisine, a conventional database application would most likely resort to a syntactic matching query using an equality operator as illustrated by the following SQL SELECT statement:
SELECT*FROM served_food WHERE cuisine=‘Latin American’;
But this query would not identify restaurants listed as serving “Mexican,” “Spanish,” or “Portuguese” cuisine, since none of those terms identically match the term “Latin American” used in the query.
More meaningful results could be obtained by performing semantic matching which would take into account the meaning of terms. To do that, the matching process could consult an ontology like the one shown graphically in FIG. 1 which shows that the term “Latin American” encompasses the more specific cuisine types identified by the terms “Mexican,” “Spanish” and “Portuguese.”
The equality operation commonly used in a conventional database system only allows for matching based on the structure of the data type and doesn't take into account the semantics pertaining to a specific domain. Semantic meaning can be specified by one or more ontologies associated with the domain. In recent years, mechanisms for handling ontologies have received wide attention in the context of semantic web. See, for example, “The Semantic Web” by T. Bemers-Lee, J. Hendler and O. Lassila in Scientific American, May, 2001. Tools for building and using ontologies have become available and include, for example: (1) OntologyBuilder and OntologyServer from VerticalNet described by A. Das, W. Wu, and D. McGuinness in “Industrial Strength Ontology Management,” The Emerging Semantic Web, IOS Press, 2002, and (2) KAON described by B. Motik, A. Maedche, and R. Volz in “A Conceptual Modeling Approach for Semantics-Driven Enterprise Applications,” Proceedings of the 2002 Confederated Int. Conferences DOA/CoopIS/ODBASE, 2002. These tools permit ontologies to be stored in a relational database, and provide a procedural API (application program interface) for accessing and manipulating the ontologies. To incorporate ontology-based semantic matching into an application, however a user needs to make use of the provided APIs to first query the ontology and then combine the results from the API with queries on database tables, a process that is burdensome to the user and requires additional processing.
The formal specification of an ontology facilitates building applications by separating the knowledge about the target domain from the rest of the application code. This separation substantially simplifies the application code, makes it easier to share the knowledge represented by the ontology among multiple applications, and allows that knowledge to be expanded or corrected without requiring changes to the application.
Relational database systems that are in widespread use must utilize ontologies to provide improved results. To achieve that, however, the existing capabilities of the RDBMS must be expanded to support ontology-based semantic matching in a relational database management system (RDBMS), and these enhanced capabilities should be made available in ways that are consistent with existing practices that are already familiar to database users.